In computer animation, a character generally is defined by a rig, and an associated geometry, often called a skin or envelope. A rig is a character skeleton comprised of a number of interconnected elements that has been augmented with one or more animation controls and constraints to facilitate use, and is the fundamental workspace of the animator. Each element in the rig is defined in three dimensions by vectors defining its position, orientation and scaling, as well as other animation- or display-specific properties. Various algorithms control the relationship between the rig and the geometry to produce the look of a character.
Various techniques may be used to manipulate a character to provide the appearance of animation. One technique is to specify a series of key frames that describe motion of the character over time, using a combination of inverse and forward kinematics and character rigging techniques. Another technique is to use motion capture data representing the position and orientation of selected elements of the topology of a character over time. For example, motion may be captured using sensors attached to a live actor. The motion capture data may be used to derive the topology of a character representing the live actor. The motion capture data then is used to animate that character. Other techniques include using constraints, scripts or expressions.
Generating realistic character motion for computer animation is a difficult task. Typically, character animation is done by hand, requiring a great deal of work by skilled artists. The end result of such effort is typically a motion (or sequence of motions) that is specific to one particular character. If the animator wishes to have the “same” animation on a different character, he or she will typically have to re-do the animation from scratch. As the demand for character animation rises, due to increasing use of CG effects in movies, as well as next-generation video games, content producers are focusing more and more on the problem of animation reuse: applying completed animation from one character to another, different, character in an automated fashion.
The most commonly used technique for character animation reuse is a process called motion retargeting, which can transfer animation between a source character and a target character using a combination of inverse kinematic and forward kinematic algorithms. Motion retargeting algorithms generally require that the source and target characters have identical structures, or that the target character has a simpler underlying “rig” than the source character. With these constraints, motion retargeting can be performed between characters having the same structure but different proportions. See, for example, “Retargeting Motion to New Characters,” by Michael Gleicher, in Proceedings of SIGGRAPH 98, pages 33-42, July 1998. In practice, motion retargeting is restricted to retargeting motion capture data to pre-defined rig structures, and in limited cases moving animations from one pre-defined rig to another, due to the narrow constraints of current methods. Motion retargeting techniques map motion from the source rig to the target rig by analyzing these rigs and applying the appropriate kinematic calculations. Problems arise, however, when the source and target rigs are different, such as when it is desired to map motion from a biped source character to a quadraped target character or to a character having no skeletal structure at all.